- The Messaging Metaphor
- Classes
- Mechanisms of Abstraction
- Inheritance
- Dynamism
- Outlet Connections
- Aggregation and Decomposition
- Models and Frameworks
- Collaboration
- Organizing Object-Oriented Projects
- ID
- Dynamic Typing
- The Receiver's Instance Variables
- Polymorphism
- Dynamic Binding
- Inheritance
- Class Types
- Class Objects
- Class Names in Source Code
- The Interface
- The Implementation
- Selectors
- Hidden Arguments
- Messages to self and super
- Adding to a Class
- How Categories are Used
- Categories of the Root Class
- How Protocols are Used
- Informal Protocols
- Formal Protocols
- Distributed Objects
- Language SupportT
- Static Typing
- Getting a Method Address
- Getting an Object Data Structure
- Allocating Memory for Objects
- Initializing New Objects
- Combining Allocation and Initialization
- Deallocation
- Forwarding and Multiple Inheritance
- Surrogate ObjectsS
- Making Forwarding Transparent